package windbell.domain.risk;

import edu.fudan.mylang.pf.EntityImplementation;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
import windbell.domain.risk.BaseHasSimplePy;
import windbell.domain.risk.RiskSubCategory;
import windbell.domain.risk.impl.RiskCategoryImpl;
import windbell.domain.risk.proxy.RiskCategoryProxy;

@EntityImplementation(implementBy = RiskCategoryImpl.class)
public interface RiskCategory extends BaseHasSimplePy {
  public abstract String getCode();
  
  public abstract RiskCategory setCode(final String code);
  
  public abstract Collection<RiskSubCategory> getSubCategory();
  
  public abstract RiskSubCategory createAndAddtoSubCategory();
  
  public abstract RiskSubCategory createAndAddtoSubCategory(final Procedure1<RiskSubCategory> updater);
  
  public abstract RiskCategory removeFromSubCategory(final RiskSubCategory riskSubCategory);
  
  public abstract RiskCategory removeAllSubCategory();
  
  public abstract void checkValid();
  
  public abstract RiskCategoryProxy toProxy();
}
